package entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name="Cotizacion")
public class CotizacionEntity extends DocumentoEntity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5146946470826942516L;
	private int numero;
	private Date fechaVencimiento;
	private String estado;
	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn()
	private ClienteEntity cliente;
	@ManyToMany (cascade=CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinTable(name="Cotizacion_Condicion",joinColumns=@JoinColumn(name="idCotizacion"),inverseJoinColumns=@JoinColumn(name="idCondicion"))
	private List<CondicionCompraEntity> condicionCompra=new ArrayList<CondicionCompraEntity>();
	private double total;
	private double iva;
	public Date getfechaVencimiento() {
		return fechaVencimiento;
	}
	public void setFechaVencimiento(Date fechaVenticimento) {
		this.fechaVencimiento = fechaVenticimento;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public ClienteEntity getCliente() {
		return cliente;
	}
	public void setCliente(ClienteEntity cliente) {
		this.cliente = cliente;
	}
	public double getTotal() {
		return total;
	}
	public void setTotal(double total) {
		this.total = total;
	}
	public double getIva() {
		return iva;
	}
	public void setIva(double iva) {
		this.iva = iva;
	}
	public int getNumero() {
		return numero;
	}
	public void setNumero(int numero) {
		this.numero = numero;
	}
	public CotizacionEntity() {

	}
	public List<CondicionCompraEntity> getCondicionCompra() {
		return condicionCompra;
	}
	public void setCondicionCompra(List<CondicionCompraEntity> condicionCompra) {
		this.condicionCompra = condicionCompra;
	}
	public void calcularIva(){
		double t=0;
		for(int i=0;i<items.size();i++){
			ItemEntity it=items.get(i);
			t+=it.getPrecio()*it.getCantidad();
		}
		this.iva=t*0.21;
	}
	public void calcularTotal(){
		for(int i=0;i<items.size();i++){
			ItemEntity it=items.get(i);
			this.total+=it.getPrecio()*it.getCantidad();
		}
	}
	
	
	
	

}
